package cn.zqy.demo2.day01.demo02;

import java.util.Calendar;

/**
 * Calendar类【日历类就是方便获取各个时间属性的。】：4个重要方法
 *  1.public int get(int field)：返回给定日历字段的值。
 *  2.public void set(int field, int value)：将给定的日历字段设置为给定值。
 *  3.public abstract void add(int field, int amount)：根据日历的规则，为给定的日历字段添加或减去指定的时间量。
 *  4.public Date getTime()：返回一个表示此Calendar时间值（从历元到现在的毫秒偏移量）的Date对象。
 *
 *  int field:
 *      Calendar类中的成员常量
 *
 * */
public class Demo04Calendar {
    public static void main(String[] args) {
        // Calendar类在创建对象时并非直接创建，而是通过静态方法创建，返回子类对
        Calendar date = Calendar.getInstance();

        // 1.get方法：返回给定日历字段的值
        System.out.print("  年： " +date.get(Calendar.YEAR));
        System.out.print(" 月：" +date.get(Calendar.MONTH));  // 0~11
        System.out.print(" 日：" +date.get(Calendar.DAY_OF_MONTH));
        System.out.println(" 时：" +date.get(Calendar.HOUR));

        System.out.println("=============");
        // 2.set方法：将给定的日历字段设置为给定值。
        date.set(Calendar.YEAR, 1888);
        date.set(Calendar.MONTH, 11);
        date.set(Calendar.DAY_OF_MONTH, 2);
        date.set(Calendar.HOUR, 23);

        System.out.println("年：" +date.get(Calendar.YEAR));
        System.out.println("月：" +date.get(Calendar.MONTH));  // 0~11
        System.out.println("日：" +date.get(Calendar.DAY_OF_MONTH));
        System.out.println("时：" +date.get(Calendar.HOUR));
        System.out.println("=============");

        // 3.add方法：为给定的日历字段添加或减去指定的时间量
        date.add(Calendar.YEAR, 1);  // 增
        System.out.println("年：" +date.get(Calendar.YEAR));
        date.add(Calendar.YEAR, -10);   // 减少
        System.out.println("年：" +date.get(Calendar.YEAR));
        System.out.println("=========");

        // 4.getTime()返回一个表示此Calendar时间值
        System.out.println(date.getTime());
    }
}
